September 17, 2021

Much like any other organization navigating the future during very uncertain times, the FreeBSD Foundation team spent the last year increasingly focused on how best to support its mission and goal – how best to support the FreeBSD Project. We held strategy sessions with the Foundation Board and FreeBSD Core team, reviewed the results of the FreeBSD core team’s user and developer surveys, and held conversations with developers, users and other members of the FreeBSD community to determine where to focus our efforts. The overall goal is to expand and enhance the efforts of the technology team.

The beginnings of this effort can be seen in the FreeBSD Quarterly Status Reports for the first half of the year. One example is the sponsored Linuxulator Compatibility Improvements project that included modernizing the code base to support popular client-facing and server related Linux applications. You can read more about his work at https://freebsdfoundation.org/project/targeted-linuxulator-compatibility-improvements/.

Development Roadmap

As part of the expansion of our development efforts, we’ve expanded the technology team. We have brought on five full and part time staff members to allow the Foundation to take on larger and more in-depth projects. Of course, we continue to fund individual project grants that are at the heart of the Foundation’s decades-long support of FreeBSD software development.

As a general rule the Foundation’s funded development effort focuses on gaps that aren’t being addressed by the broader community. We’ve broken up the Technology Roadmap into 4 main areas of focus.

Focus Area 1: End User (Laptop and Desktop)

Wi-Fi continues to be an important gap the Foundation is working to fill. We’ve brought on Björn Zeeb to work on support for newer Intel chips (those supported by dual-licensed vendor driver) using the LinuxKPI layer. This work is now functional and is undergoing testing and integration.

We also funded Emmanuel Vadot to improve the DRM Graphics stack last year, using the same LinuxKPI infrastructure. We are evaluating additional work on the graphics stack later this year.

We believe the pkgbase project is very important, and are ready to help with the effort. We are also in the early stages of evaluating work on Thunderbolt 3 / USB 4 support. In addition, one of the Foundation’s Co-op students worked on a prototype of a new FreeBSD installer. You can find out more about his work in the upcoming summer intern review blog post.

We are evaluating improvements to the ports tree and package system, including per-release repositories, improved CI and testing, and integration of vulnerability mitigation tooling.

There are normally no problems building packages on a host that is one or more point releases behind the version of hosts targeted for the packages. Indeed, FreeBSD’s official package sets are built on the oldest supported release on each branch.  However, problems do occur with packages such as graphics/drm-*-kmod, which include kernel modules.  To prevent users from having newly updated systems with a non-functioning display server, per-release repositories have been proposed.  Release-specific overlays could be used to, e.g., offer DRM packages simultaneously for 13.0 and 13.1 while both point releases are supported.

With the prospect of more platforms reaching tier 1 support status, we recognize the additional burden to test all ports changes on all tier 1 supported platforms.  We are exploring how we can best contribute testing and CI resources to alleviate this burden.

Focus Area 2 : Commodity Server

We continue to invest in Tier 1 CPU work including general bug fixes and performance improvements. This will include foundational hardware support for new CPUs from vendors of Tier 1 architectures, as well as support for new instruction set architecture-level features.

The Foundation’s technology team has also spent an increasing amount of time on security improvements including security advisories, proactive vulnerability mitigations, and fuzzing tools (Syzkaller, and KASAN and KMSAN sanitizers).

With the release of FreeBSD 13.0, the FreeBSD Core team declared FreeBSD/arm64 a Tier 1 CPU architecture. The FreeBSD Foundation’s support for Arm64 began in 2012 with a grant to Andy Turner, and there’s been a large and increasing level of support in the overall ARM ecosystem since. The Foundation will support the deliverables and guarantees specified by FreeBSD’s Tier 1 status, as well as the general usability and functionality of the platform. 

Foundation support for CI and Release artifacts continues to grow. Foundation team member Li-Wen Hsu continues to improve the self hosted CI build and test environment for FreeBSD. Going forward we have a few CI-related focus areas. We will bolster support for 3rd party projects via hosted CI tools (Cirrus-CI) and CI runners for projects like Clang/LLVM. We will make sure our self-hosted CI environment can be used as a template for downstream projects. Additionally, we will bring the Foundation’s prototype hardware CI lab infrastructure to production.

Focus Area 3: Toolkit and Appliance

The “Toolkit and Appliance” theme includes work to make sure FreeBSD remains a compelling platform for downstream projects using FreeBSD, or parts of FreeBSD, as the foundation for their work. And as usual, the work we take on in a given area is typically work that is not being addressed by the broader developer community. 

The Foundation has funded Moritz Systems to work on the LLDB debugger in FreeBSD. Completed work focused on stability and maintainability improvements, followed by Arm64 support and userland debugging improvements. The end result is that LLDB is in good shape for userland debugging, and we’ve now moved our efforts to adding live and core dump kernel debugging support. We have contracted Mortiz to continue their work. You can find out more about their earlier efforts here. https://freebsdfoundation.org/blog/guest-blog-foundation-sponsors-freebsd-lldb-improvements/

We are starting to evaluate work on performance profiling and tooling for a project following the focus on the debugger.

Focus Area 4: Virtualization and Containers

We have started work on bhyve hypervisor improvements, including improved management of credentials. This work is the start of a path to better jail integration, and running bhyve as non-root. Portions of this work were started by Cyril Zhang, one of the Foundation’s summer interns. We are looking at supporting virtual filesystem support, and expect to help with the integration of longstanding out-of-tree development efforts including snapshot and migration support, and bhyve for the arm64 architecture.

We are in the early stages of researching proof of concepts to determine where FreeBSD Foundation support can best serve the needs of end users to apply modern container concepts to FreeBSD. One example of this work is Cyril’s work on Samuel Karp’s runj project. We have also started investigating resource accounting improvements and improvements to the jail user interface.

The ability to expand our team and our efforts would not be possible without the continued support from the FreeBSD Community. We’re excited to help move FreeBSD forward in the areas mentioned above. For the latest individual project status updates, please see the Foundation’s quarterly status report or Project Development updates on the Foundation website. Most importantly, the Foundation relies on members of the community to help guide us on where to focus development effort, on an ongoing basis. The Foundation roadmap will continue to evolve over time. If you have feedback on the current plans or know of gaps you’d like to see us fill, please reach out via: techteam@freebsdfoundation.org

– – Contributed by Ed Maste